package com.denlaku.longan.service.impl;

import com.denlaku.longan.core.TenantCacheManager;
import com.denlaku.longan.repository.TenantRepository;
import com.denlaku.longan.service.TenantService;
import com.denlaku.longan.vo.Tenant;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author tianx
 */
@Service
public class TenantServiceImpl implements TenantService {
	@Autowired
	private TenantRepository tenantRepository;

	@Override
	public List<Tenant> list(Tenant tenant) {
		return tenantRepository.list(tenant);
	}

	@Override
	public List<Tenant> ownedList(Long userId) {
		return tenantRepository.ownedList(userId);
	}

	@Override
	public Tenant get(Long id) {
		return tenantRepository.get(id);
	}

	@Override
	public void add(Tenant tenant) {
		tenantRepository.add(tenant);
	}

	@Override
	public void update(Tenant tenant) {
		tenantRepository.update(tenant);
		TenantCacheManager.remove(tenant.getId());
	}

	@Override
	public void delete(Long id) {
		tenantRepository.delete(id);
		TenantCacheManager.remove(id);
	}

	@Override
	public void disabled(Long id) {
		Tenant tenant = new Tenant();
		tenant.setId(id);
		tenantRepository.disabled(tenant);
		TenantCacheManager.remove(id);
	}

	@Override
	public void enabled(Long id) {
		Tenant tenant = new Tenant();
		tenant.setId(id);
		tenantRepository.enabled(tenant);
	}

}
